//-----------------------------------------------------------------------------
//
// @file	Camera.h
// @brief	File with all camera data
// @author	Vinod Melapudi
// @date	20Feb2010
//
//-----------------------------------------------------------------------------

#ifndef _CAMERA_H
#define _CAMERA_H

#include "Vector.h"

//
// @class	Camera
// @brief	Camera functionalities
//
class Camera
{
public:
	Camera();

	void Pan( float x, float y );
	void Zoom( float z );
	void Rotate( float mouse_x, float mouse_y );
	void Rotate( Vector3 axis, float angle );

	// Opengl commands
	void glPerspective( float screenWidth, float screenHeight );
	void glLookAt();

	void Reset();

	float		m_fov;
	float		m_near_z;
	float		m_far_z;

	Vector3		m_pos;
	Vector3		m_look_at;
	Vector3		m_up_vec;

	float		m_pan_rate;
	float		m_zoom_rate;
};


#endif
